// * 路由拦截器（拦截路由 验证用户信息）
import router from '@/router'
import { GlobalStore } from '@/store'

// 路由前置拦截
// * 拦截逻辑
// 验证路由权限 ->  无  ->  放行
// 								 有  ->  验证有无Token  ->  无   ->  跳转登录
// 																					 有   ->  验证用户信息  ->  有  ->  放行
// 																																		 无  ->  获取用户信息 ->  成功  -> 放行
// 																																														失败   -> 跳转登录

router.beforeEach(async to => {
	// * 验证路由权限
	// if (to.path === '/login' && !globalStore.token) return
	if (to.path === '/login') return

	// * 验证有无Token
	const globalStore = GlobalStore()
	if (!globalStore.token) return { name: 'login' }

	// * 验证是否为登录
	// if (to.path === '/login') return { path: '/' }

	// * 验证用户信息
	if (globalStore.nickName) return

	// * 获取用户信息
	try {
		return await globalStore.getUserinfo()
	} catch (error) {
		globalStore.resetData()
		return { name: 'login' }
	}
})

// 路由后置拦截
router.afterEach(() => {})

export default router
